<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.util.GregorianCalendar,java.util.Calendar,java.util.regex.*,java.util.*" %>
<%@page import="java.rmi.registry.LocateRegistry"%>
<%@page import="java.rmi.registry.Registry"%>
<%@page import="java.util.ArrayList"%>
<%@page import="rmi.*" %>
<%@page import="data.*" %>
<jsp:useBean id="manager" scope="session" class="manager.Manager" />
<jsp:useBean id="methodString" scope="request" class="bean.MethodString" />
<%
boolean err = false;
String nom = "";
String errNom = "";
String prenom = "";
String errPrenom = "";
String mot_de_passe = "";
String errMot_de_passe = "";
String numero_enregistrement="" ;
String errNumero_enregistrement="" ;
String adresse = "";
String errAdresse = "";
String code_postal = "";
String errCode_postal = "";
String ville = "";
String errVille= "" ;
String email = "";
String errEmail = "";
String numero_telephone = "";
String errNumero_telephone = "";
String numero_portable = "";
String errNumero_portable = "";
String id_droit_site = "";
String errId_droit_site = "";

String errAjout="" ;

ArrayList<DroitAcces> listDroitAcces=manager.getServeurRmi().listerDroitAcces() ;
Iterator it=listDroitAcces.iterator() ;

Pattern pat ;
Matcher m;


if(request.getParameter("submit") != null){ 
	numero_enregistrement = request.getParameter("numero_enregistrement");
	if(numero_enregistrement == null) numero_enregistrement = "";
	if(numero_enregistrement.trim().equals("")){
		errNumero_enregistrement = "Veuillez remplir le champ numéro d'enregistrement";
		err = true;
	}
	
	nom = request.getParameter("nom");
	if(nom == null) nom = "";
	if(nom.trim().equals("")){
		errNom = "Veuillez remplir le champ nom";
		err = true;
	}
	
	prenom = request.getParameter("prenom");
	if(prenom == null) prenom = "";
	if(prenom.trim().equals("")){
		errPrenom = "Veuillez remplir le champ prénom";
		err = true;
	}
	
	adresse = request.getParameter("adresse");
	if(adresse == null) adresse = "";
	if(adresse.trim().equals("")){
		errAdresse = "Veuillez remplir le champ adresse";
		err = true;
	}
	
	code_postal = request.getParameter("code_postal");
	if(code_postal == null) code_postal = "";
	if(code_postal.trim().equals("")){
		errCode_postal = "Veuillez remplir le champ code postal";
		err = true;
	}else{
		pat = Pattern.compile("[0-9]{5}") ;
	 	m = pat.matcher(code_postal) ;
	    if (!m.find()) {
	    	errCode_postal = "Le code postal doit être composé que de valeurs numériques";
			err = true;
	    }
	}
	
	ville = request.getParameter("ville");
	if(ville == null) ville = "";
	if(ville.trim().equals("")){
		errVille = "Veuillez remplir le champ ville";
		err = true;
	}
	
	email = request.getParameter("email");
	if(email == null) email = "";
	if(email.trim().equals("")){
		errEmail = "Veuillez remplir le champ email";
		err = true;
	}else{
		pat = Pattern.compile("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$") ;
	 	m = pat.matcher(email) ;
	    if (!m.find()) {
	    	errEmail = "Le format de l'email n'est pas valide";
			err = true;
	    }
	}
	
	id_droit_site = request.getParameter("id_droit_site");
	if(id_droit_site == null) id_droit_site = "";
	if(id_droit_site.trim().equals("")){
		errId_droit_site = "Veuillez remplir le champ droit accès";
		err = true;
	}
	
	numero_telephone = request.getParameter("numero_telephone");
	if(numero_telephone == null) numero_telephone = "";
	if(numero_telephone.trim().equals("")){
		errNumero_telephone = "Veuillez remplir le champ numéro telephone";
		err = true;
	}else{
		pat = Pattern.compile("[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}") ;
	 	m = pat.matcher(numero_telephone) ;
	    if (!m.find()) {
	    	errNumero_telephone = "Le format du numéro de téléphone n'est pas valide";
			err = true;
	    }
	}
	
	numero_portable = request.getParameter("numero_portable");
	if(numero_portable == null) numero_portable = "";
	if(numero_portable.trim().equals("")){
		errNumero_portable = "Veuillez remplir le champ numéro portable";
		err = true;
	}else{
		pat = Pattern.compile("[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}") ;
	 	m = pat.matcher(numero_portable) ;
	    if (!m.find()) {
	    	errNumero_portable = "Le format du numéro de portable n'est pas valide";
			err = true;
	    }
	}
	if(!err){
		mot_de_passe=methodString.getEncodedPassword("cabmedic") ;
		if(manager.getServeurRmi().stocker(new Medecin(numero_enregistrement,nom,prenom,mot_de_passe,id_droit_site,adresse,code_postal,ville,numero_telephone,numero_portable,email))>-1) {
			ArrayList<String> messages = new ArrayList<String>();
			messages.add("Médecin créé");
			manager.setMessages(messages);
%>
			<jsp:forward page="liste_medecin.jsp" />
<%
			return;
		}else{
			errAjout = "Insertion en bdd impossible";
		}
	}
}
%>

<div id="contenu_style2_haut">
</div>
<div id="contenu_style2_centre">
<form action="creer_medecin.jsp" method="post">
			<table> 
				<tr> 
					<td style="text-align:center;font-weight:bold;width:200px;">Numéro enregistrement * :</td> 
					<td style="text-align:left;"><input type="text" name="numero_enregistrement" size="20" maxlength="255" value="<%= numero_enregistrement %>"/></td> 
					<td>&nbsp;</td>
				</tr>
<%
				if(!errNumero_enregistrement.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errNumero_enregistrement %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>				
				<tr> 
					<td style="text-align:center;font-weight:bold;">Nom * :</td> 
					<td style="text-align:left;"><input type="text" name="nom" size="40" maxlength="255" value="<%= nom %>"/></td> 
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errNom.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errNom %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>					
				<tr> 
					<td style="text-align:center;font-weight:bold;">Prénom * :</td> 
					<td style="text-align:left;"><input type="text" name="prenom" size="40" maxlength="255" value="<%= prenom %>"/></td> 
					<td>&nbsp;</td>
				</tr>
<%
				if(!errPrenom.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errPrenom %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>			 
				<tr> 
					<td style="text-align:center;font-weight:bold;">Adresse * :</td> 
					<td style="text-align:left;"><input type="text" name="adresse" size="40" maxlength="50" value="<%= adresse %>"/></td> 
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errAdresse.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errAdresse %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">Code postal * <span style="font-size:10px;font-style:italic;">(ex : XXXXX)</span> :</td> 
					<td style="text-align:left;"><input type="text" name="code_postal" size="10" maxlength="5" value="<%= code_postal %>"/></td> 
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errCode_postal.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errCode_postal %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">Ville * :</td> 
					<td style="text-align:left;"><input type="text" name="ville" size="40" maxlength="50" value="<%= ville %>"/></td>
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errVille.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errVille %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">Numéro de téléphone * :<br /><span style="font-size:10px;font-style:italic;">(ex : XX.XX.XX.XX.XX)</span></td> 
					<td style="text-align:left;"><input type="text" name="numero_telephone" size="20" maxlength="14" value="<%= numero_telephone %>"/></td>
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errNumero_telephone.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errNumero_telephone %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">Numéro de portable * :<br /><span style="font-size:10px;font-style:italic;">(ex : XX.XX.XX.XX.XX)</span></td> 
					<td style="text-align:left;"><input type="text" name="numero_portable" size="20" maxlength="14" value="<%= numero_portable %>"/></td> 
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errNumero_portable.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errNumero_portable %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">E-mail * :<br /><span style="font-size:10px;font-style:italic;">(ex : patient.patient@patient.fr)</span></td> 
					<td style="text-align:left;"><input type="text" name="email" size="40" maxlength="50" value="<%= email %>"/></td>
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errEmail.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errEmail %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td style="text-align:center;font-weight:bold;">Droit accès * :</td> 
					<td>
						<select name="id_droit_site">
							<option value=""></option>
<%
							while(it.hasNext()) {
								DroitAcces droit=(DroitAcces) it.next() ;
								if(id_droit_site.trim().equals(droit.getId_droit_acces())) {
%>
									<option value="<%= droit.getId_droit_acces() %>" selected="selected"><%= droit.getDescription_droit_acces() %></option>
<%				
								}else{
%>
									<option value="<%= droit.getId_droit_acces() %>"><%= droit.getDescription_droit_acces() %></option>
<%						
								}
							}
%>				
						</select>
					</td>
					<td>&nbsp;</td>
				</tr> 
<%
				if(!errId_droit_site.trim().equals("")) {
%>		
					<tr>
						<td>&nbsp;</td>
						<td id="erreur"><%= errId_droit_site %></td>
						<td>&nbsp;</td>
					</tr>
<%
				}
%>	
				<tr> 
					<td>&nbsp;</td> 
					<td>&nbsp;</td> 
				</tr> 
				<tr> 
					<td>&nbsp;</td> 
					<td id="erreur"><%= errAjout %></td>
					<td  style="text-align:right;"><input type="submit" name="submit" value="Enregistrer le médecin" /></td> 
				</tr> 
				<tr> 
					<td style="font-style:italic;font-size:10px;">* : champ obligatoire</td> 
					<td>&nbsp;</td> 
					<td>&nbsp;</td>
				</tr> 
			</table> 
		</form>
</div>
<div id="contenu_style2_bas">
</div>